package IO;

import java.io.*;

//用InputStream类，完成文件的 读操作
//该类提供了不同参数的read方法，对应不同功能
public class IODemo7 {
    public static void main(String[] args) throws IOException {
        //
        //InputStream inputStream = null;
        //↑这里，如果下边要写成try后边加（）创建的方式，这里就不能这样写
        File file = new File("./test.txt");
        byte[] buffer = new byte[4];
        try(InputStream inputStream = new FileInputStream("./test.txt")){
            while(true){
                //
                int n = inputStream.read(buffer);
                //n表示此次独到的字节数
                if(n == -1){
                    System.out.println("读完了！！！");
                    break;
                }
                System.out.println("本次读到的是：" + new String(buffer,0,n));//注意这里的写法、参数（当然，也可以一个字符一个字符地打印）
            }
        } /*finally {
            inputStream.close();
        }*///这里需要注意，用到了try with sources 机制，可以不用手动回收，而是自动回收
    }
    public static void main1(String[] args) throws IOException {
        //
        InputStream inputStream = null;
        //↑这里先设置为空

        File file = new File("./test.txt");
        file.createNewFile();
        //↑这里需要先创建出这个文件，不然后边流操作用它做参数会报错（“……不存在……”）

        try{
            inputStream = new FileInputStream("./test.txt");
            //注意：↑这里需要抛异常
            while(true){
                //读取文件中的内容，每次只读一个字节，返回int类型的数据：表示读到的这一个字节对应的int值，或者，-1，表示已经读完了
                int b = inputStream.read();
                if(b == -1){
                    System.out.println("文件内容已经读完了！！！");
                    break;
                }
                System.out.println("此次读到的是："+(char)b);
            }

        }finally {
            inputStream.close();
            //关闭文件
        }
    }
}
